use actix_http::StatusCode;
use actix_web::test;
use bytes::Bytes;
use common::api_common::ApiProject;

use common::api_v3::ApiV3;
use common::database::USER_USER_PAT;
use common::environment::{with_test_environment, TestEnvironment};

mod common;

#[actix_rt::test]
pub async fn error_404_body() {
    with_test_environment(None, |test_env: TestEnvironment<ApiV3>| async move {
        // 3 errors should have 404 as non-blank body, for missing resources
        let api = &test_env.api;
        let resp = api.get_project("does-not-exist", USER_USER_PAT).await;
        assert_status!(&resp, StatusCode::NOT_FOUND);
        let body = test::read_body(resp).await;
        let empty_bytes = Bytes::from_static(b"");
        assert_ne!(body, empty_bytes);
    })
    .await;
}
